home *** CD-ROM | disk | FTP | other *** search
- geos convert utility file structure
-
- tHE geos CONVERT PROGRAM IS USED TO CONVERT geos vlir AND seq STRUCTURE FILES
- TO cOMMODORE seq STRUCTURE FILES. wITHIN THE cOMMODORE seq FILE WHICH IS
- CREATED, ALL OF THE geos-RELATED INFORMATION ABOUT THE FILE IS CONTAINED. tHIS
- INCLUDES THE FILE'S:
-
- - DIRECTORY ENTRY
- - HEADER BLOCK
- - INDEX TABLE (IF FILE IS vlir)
- - DATA BLOCKS
-
- cONVERT ALSO WILL CONVERT THESE "geos FORMAT IN cOMMODORE seq" FILES BACK TO
- THEIR ORIGINAL FORM.
-
- wHETHER cONVERT IS PROCESSING A geos vlir OR seq FILE, THE FIRST TWO BLOCKS OF
- THE RESULTING cOMMODORE seq FILE CONTAIN THE SAME INFORMATION:
-
- BLOCK 1: BYTES 0 AND 1 CONTAIN STANDARD NEXT TRACK AND SECTOR POINTERS(nts)
- BYTES 2 TO 31 CONTAIN THE FILE'S DIRECTORY ENTRY, WITH THE FILE'S
- ORIGINAL NAME AND TIME STAMP.
-
- BLOCK 2: BYTES 0 AND 1: nts POINTER
- BYTES 2 TO 255: BYTES 2 TO 255 OF THE FILE'S HEADER BLOCK.
-
- wHEN CONVERTING geos seq FILES, THE REST OF THE BLOCKS IN THE RESULTING
- cOMMODORE seq FILE ARE THE DATA BLOCKS FROM THE geos seq FILE.
-
- BLOCKS 3, 4 ETC:
- BYTES 0 AND 1: nts POINTER
- BYTES 2 TO 255: BYTES 2 TO 255 OF BLOCK FROM ORIGINAL geos seq
- FILE.
-
- LAST BLOCK:
- BYTE 0 = 0
- BYTE 1 = POINTER TO LAST BYTE USED IN THIS BLOCK (=$02 TO $FF)
-
- wHEN CONVERTING geos vlir FILES, THE THIRD BLOCK IN THE RESULTING cOMMODORE seq
- FILE CONTAINS AN INDEX TABLE FOR THE FILE:
-
- BLOCK 3: BYTES 0 AND 1: nts POINTER
- BYTE 2: NUMBER OF BLOCKS IN vlir RECORD #0
- BYTE 3: NUMBER OF BYTES IN LAST BLOCK OF RECORD #0
- BYTES 4,5: # BLOCKS/BYTES IN RECORD #1
- ...AND SO ON UNTIL:
- BYTES 254 AND 255: NUMBER OF BLOCKS/BYTES FOR RECORD#126
-
-
- iF ONE OF THE BLOCK/BYTE PAIRS IS (0,0), THEN THE RECORD DOES NOT EXIST. iF A
- PAIR IS ($00,$FF) THEN THE RECORD IS EMPTY. tHE REMAINING BLOCKS IN THE
- cOMMODORE seq FILE CONTAIN ALL OF THE vlir RECORDS, APPENDED END-TO-END,
- STARTING WITH THE FIRST EXISTING RECORD (USUALLY RECORD #0). aDDING UP ALL OF
- THE "NUMBER OF BLOCKS" ENTRIES IN THE THIRD BLOCK WILL GIVE YOU THE TOTAL
- NUMBER OF BLOCK WHICH REMAIN.
-
- tHUS IF THE vlir FILE HAS TWO BLOCKS IN RECORD #0, ONE BLOCK IN RECORD #4, AND
- NULL POINTERS (NO BLOCKS) FOR ALL OTHER RECORDS, THEN THE RESULTING cOMMODORE
- seq FILE WILL CONTAIN:
-
- bLOCK 1: DIRECTORY ENTRY
- bLOCK 2: FILE HEADER
- bLOCK 3: BLOCKS/BYTES PER RECORD TABLE
- bLOCK 4: BLOCK #1 OF RECORD #0
- bLOCK 5: BLOCK #2 OF RECORD #0
- bLOCK 6: BLOCK #1 OF RECORD #4
-
- nOTE THAT THE CONVERSION PROCESS DOES NOT CREATE A NEW FILE, IT SIMPLY MODIFIES
- THE EXISTING geos vlir OR seq FILE SO THAT IT CONFORMS TO THE FORMAT OF A
- cOMMODORE seq FILE. uSING A geos vlir FILE AS AN EXAMPLE, THIS PROCESS
- INVOLVES:
-
- 1) cREATING A NEW BLOCK TO CONTAIN THE FILE'S DIRECTORY ENTRY, CHANGING THE
- EXISTING DIRECTORY ENTRY SO THAT THE POINTER TO THE FILE'S FIRST BLOCK NOW
- POINTS TO THIS NEW BLOCK. tHE nts POINTER IN THIS NEW BLOCK WILL POINT TO THE
- FILE'S EXISTING HEADER BLOCK.
-
- 2) cHANGING THE nts POINTER IN THE BLOCK CONTAINING THE FILE HEADER SO THAT IT
- POINTS TO THE FILE'S INDEX TABLE BLOCK.
-
- 3) cHANGING THE FILE'S INDEX TABLE BLOCK SO THAT IT HAS ACCURATE "NUMBER OF
- BLOCKS/BYTES" INFORMATION FOR EACH RECORD. aLSO, THE nts POINTER IN THIS BLOCK
- IS ALTERED TO POINT TO THE FIRST BLOCK OF THE FIRST RECORD WHICH EXISTS.
-
- 4) cHANGING THE nts POINTERS IN THE FIRST AND LAST BLOCKS OF EACH RECORD, SO
- THAT THE RECORDS ARE APPENDED INTO A STRING OF BLOCKS.
-
- aLSO, THINK ABOUT THE REVERSE PROCESS. cONVERT WILL TAKE A cOMMODORE seq FILE
- WHICH COMPLETELY DEFINES A geos vlir OR seq FILE AND WILL CONVERT IT TO THE
- CORRECT STRUCTURE. sOFTWARE DEVELOPERS MAY FIND THIS USEFUL; IF YOU ARE USING A
- STANDARD cOMMODORE ASSEMBLER WHICH CREATES cOMMODORE seq FILES, THEN IF THE
- DATA IS SET UP RIGHT, cONVERT CAN BE USED TO TURN THE cOMMODORE seq FILE INTO A
- RUNNABLE geos vlir OR seq APPLICATION! wE WILL POST A NOTE IN THE FUTURE ABOUT
- HOW TO DO THIS.
-